#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

const int mod = 1e9+7;
const int MAXN = 2e5+10;

ll h,w,a,b;
ll fac[MAXN],inv[MAXN];

ll qp(ll x,int t){ll res=1;for(;t;t>>=1,x=x*x%mod)if(t&1)res=res*x%mod;return res;}

ll c(ll x,ll y){if(x<0||y<0||x<y)return 0;return fac[x] * inv[x-y] % mod * inv[y] % mod;}

ll chose(ll x,ll y){return c(x+y-2,x-1);}

void add(ll &x,ll y){x = (x + y) % mod;}

int main (){
	scanf("%lld %lld %lld %lld",&h,&w,&a,&b);
	for(int i = (fac[0] = 1);i < MAXN;i++) fac[i] = fac[i-1] * i % mod;
	inv[MAXN-1] = qp(fac[MAXN-1],mod-2);
	for(int i = MAXN-2;i >= 0;i--) inv[i] = inv[i+1] * (i+1) % mod;
	ll ans = 0;
	for(int i = 1;i <= h-a;i++) add(ans,chose(i,b)*chose(h-i+1,w-b)%mod);
	printf("%lld\n",ans % mod);
	return 0;
}
